The invention relates generally to the installation of software on a computer system. More specifically, the invention relates to a method of replicating customized web pages sourced from a replicated server configuration.
The advent of the Internet and the World Wide Web has changed the manner in which many companies provide information and the customer service function to their clients and customers. Traditionally, a customer needing assistance or information with respect to a product or service provided by a company would call a customer service agent who would provide him the information over the phone and/or mail or fax the customer additional information as necessary. The web, however, has provided companies with another venue to provide customer service information to their customers. In many instances, a customer""s problem or question is a common one that the customer can find an answer to by accessing the company""s frequently asked questions web page. Many companies also provide up to date customer account information online so that the customer may access and review his account status in between receiving statements by mail.
In most instances, web based customer service has proven beneficial to customers and companies: the companies can be more efficient not requiring as many customer service personnel to spend time answering common questions; and the customers can quickly and easily find answers to the common questions by accessing the companies"" web sites and accessing personal account information and other personal information online. However, in certain circumstances, a customer who has accessed a company""s web site may have questions about information provided through the web site to which answers are not provided in a frequently-asked-questions page. For instance, the customer may have a question about his/her account statement. In this instance, the customer will typically have to call a customer service agent, explain to the customer service agent about the account information he/she was viewing, direct the customer service agent to the web page containing the account information, and direct the customer service agent to the portion of the page relating to his/her question. In many instances the customer will not have the ability to be online and converse with an agent at the same time, in which case explaining the content of the web page may be more difficult. The result may be a significant portion of time spent by the customer explaining the location and content of the information before the customer service agent is able to understand the customer""s problem and help him/her.
Software programs have been developed that facilitate a customer and an agent to simultaneously view the same web page and interact with each other over the Internet. One such product is WebAgent software from Aspect Communications, Inc. Using the WebAgent software, a customer can browse web pages unassisted, but if assistance is needed, it can be requested by clicking a xe2x80x9chelpxe2x80x9d button provided on the web page in question. The customer is then connected with a customer service representative. The customer service representative can concurrently view the same pages as the customer. The two parties can manipulate the concurrently viewed web pages, move from one page to another together, control each others navigation, markup the pages using a whiteboard feature, and chat with each other whether through IP telephony or through a text chat box.
Prior art FIG. 1 illustrates an architectural overview of an operating environment for utilizing the WebAgent software. A client computer 105 is connected to the Internet 110. A web server 15 is connected to the Internet 110. The web server 15 includes a cache 120 that can store requested and delivered pages and other information as necessary. The web server 115 is connected to a WebAgent server 125. The WebAgent server 125 is connected with a customer service representative""s computer 130. The WebAgent server 125 is the server that handles the interaction between the customer""s client computer 105 and the customer service representative""s computer 130.
Prior art FIG. 2 provides a typical flow chart of the interaction between the client 105, the servers 115 and 125, and the customer service representative""s computer 130 involved in establishing an interactive WebAgent session. In block 205, a client 105 requests a web page from a company""s web server 115 through an Internet connection 110. The web page is retrieved by the web server 115 and sent to the client 105 in block 210. Where the web page is a dynamically-generated xe2x80x9cpostxe2x80x9d type page, the page is customized for the client 105 and a copy is cached within the web server""s cache 120 prior to sending the customized dynamically-generated page to the client 105. The requestor is then able to review the web page at his/her leisure on the client computer 105. If the requester, however, desires help or assistance in interpreting the page or in the case of a form, filling it out, the requestor may initiate a help session by clicking upon the appropriate icon on the web page as shown in block 215. In block 220, the request is retrieved by the WebAgent server 125, which initiates the sending of java applets to the client 105 necessary for the client 105 to participate in the interactive session. The java applets may be sent to the client 105 from either the web server 115, or the WebAgent server 125. In some implementations, a single server may perform the functions of both the web agent server 115 and the WebAgent server 125. Additionally, where the web page is of the xe2x80x9cpostxe2x80x9d type, the WebAgent server 125 retrieves the copy of the web page stored in the cache 120. In block 225, the WebAgent server 225 contacts an available customer service representative""s computer 130 and sends the customer service representative""s computer 130 the copy of the web page. The customer service client 130 and the client 105 engage in an interactive session through the WebAgent 125.
In recent years with the rapid increase in the number of people using the World Wide Web, many organizations have found it necessary to have more than one server to meet the demand of people requesting to access their web sites. Accordingly, replicated web server architectures have become common where a number of servers, each having stored content identical as the other servers are interconnected with a load balancing server that receives and routes requests for web pages to the servers for servicing. Typically, the load-balancing server routes the request to the server that is carrying the lowest amount of current load.
The system of caching the xe2x80x9cpostxe2x80x9d type dynamically-generated web pages as described above to establish an interactive session does not work well with replicated server architectures. The WebAgent server 125, after receiving a help request from the client 105, is unaware which of the multiple replicated servers was the source of the xe2x80x9cpostxe2x80x9d type dynamically-generated page for which help is desired. Accordingly, the WebAgent server 125 is not able to retrieve the copy of the cached dynamically-generated page stored in the server, which originally serviced the web page request, and send that page to the customer service representative""s to establish the interactive session.
The same replicated server problem does not present itself when establishing an interactive help session with regard to static web pages or xe2x80x9cgetxe2x80x9d type dynamically-generated web pages since the content of these types of pages are identified by the content of their URL and can, therefore, be retrieved from any of the replicated servers. Static pages are limited in terms of content to that which is stored on the server for that particular URL, and is therefore not particularly useful to generate customer specific web pages such as those that display account information.
xe2x80x9cGetxe2x80x9d type dynamically-generated pages are more useful in generating customer specific web pages. They are generated from a specific URL in which the information regarding the client user requesting the page, such as passwords and ID""s are appended to the end of the requested URL when sent to the server. The server then running a script such as a CGI (Common Gateway Interface) script generates the web page. Accordingly, the WebAgent server 125 can retrieve the identical web page from any one of the replicated servers using the URL to generate the page. Certain operating environments cannot process URLs larger than a specified size, 1 kilobyte in many cases; therefore, the amount of data that may be requested in a xe2x80x9cgetxe2x80x9d type dynamically-generated page is limited.
In a request for a xe2x80x9cpostxe2x80x9d type dynamically-generated page, the generic URL is sent separately from the client user specific information. The server retrieves the URL and then runs a script to add the client specific data prior to locally caching and sending the page to the client 105. The WebAgent server 125 after receiving the help request from the client 105 cannot use the URL provided with the help request to generate the dynamically-generated page on the customer service representative""s computer 130, because it has no mechanism with which to identify which of the many servers in a replicated environment has cached the dynamically-generated page, nor does it have enough information to regenerate the page on another server. The xe2x80x9cpostxe2x80x9d type dynamically-generated page is, however, the preferred type of dynamically-generated page since the requests for such a page is not limited in size and complex and lengthy requests for customized dynamically-generated pages can be generated. This is preferred in situations where there is likely to be a large amount of client unique information within a page, such as account statements, and invoices.
A method for operating a server is described along with a claim for a server according to one aspect of the invention. The server retrieves a document from a data storage device, typically resident on the server. The server executing a filtering routine generates a variable, comprising information necessary for another server to reproduce the document. The filter routine appends the variable to the document, and the server transmits the document through a network connection to a client computer.
In variations of this aspect of the invention, the retrieved document is customized based on information provided by a requesting party to create a dynamically-generated document. Typically, the document is written in a markup language such as HTML. The variable may comprise an entire copy of the data and information from the dynamically-generated document, preferably in a compressed and encrypted format.
A method for operating a server receiving the variable is also described. The server receives the variable, typically from a client computer that is requesting to establish an interactive session with another client computer. The server uses the variable to replicate the document associated with the information contained within the variable. The document is then transmitted to the other client computer.
In variations of this aspect of the invention, the server caches the replicated document before or after sending a copy to the other client computer. Additionally, the server may add applets to the replicated document to assist in the operation of the interactive session and transmit the applet-endowed document back to the client to replace the version of the document on the client computer without the applets.
A method of operating a client computer displaying a document containing the variable is also described according to another aspect of the invention. A dynamically-generated document is received from the server. The client renders the document on its display. The displayed document includes a hypertext link or icon that may be selected to transmit the variable to an associated server. In variations of this aspect of the invention, the selection of the icon or link may be in order to initiate an interactive session with another client or server computer.
A server system is also described that may implement the server related methods in another aspect of the invention. The server system may consist of a single document server and another server to replicate the document associated with the variable and in certain embodiments establish and run an interactive session. In other embodiments, the server system may consist of multiple replicated document servers coupled with a load-balancing server to distribute requests among the document servers, each document server being able to retrieve and generate requested documents and run a filtering routine to append the variable to the documents prior to transmission. Additionally, the replicated server system would include the server tasked with replicating the document associated with a variable and in certain instances, establishing an interactive session between two client computers.
Other features and embodiments of the invention will become apparent to one skilled in the art from the accompanying drawings and detailed description that follows.